package pruebas

import java.util.Date
import comunicaciones.Comunicacion
import comunicaciones.LlamadaLocal
import comunicaciones.LlamadaLargaDistancia
import comunicaciones.MensajeDeTexto
import comunicaciones.Comunicacion
import comunicaciones.Empresa
import clientes.Cliente
import comunicaciones.Llamada
import comunicaciones.Empresa
import planes.PlanHablateTodo
import java.util.Calendar
import java.util.GregorianCalendar
import planes.PlanBasico
import planes.PlanHablateTodo
import planes.PlanPrepagoLocal
import planes.PlanPrepagoInternacional
import planes.PlanNumerosAmigos

object PruebaComunicacion extends Application{
  

val llamadaLocal = new LlamadaLocal(new Date(2012, 8, 26), 1149143701, 6) 
val valorLlamadaLocal = Empresa valorComunicacion(llamadaLocal)
val llamadaLocal2 = new LlamadaLocal(new Date(2012, 8, 26), 1149143701, 4) 
val llamadaLocal3 = new LlamadaLocal(new Date(2012, 8, 24), 1149143701, 4) 
val llamadaLocal4 = new LlamadaLocal(new Date(2012, 8, 26), 1149143701, 4) 

val sms = new MensajeDeTexto(new Date(2012, 8, 26), 1149143701, 300)
val valorSMS = Empresa valorComunicacion(sms)

val llamadaLargaDistancia = new LlamadaLargaDistancia(new Date(2012, 8, 26), 1149143701, 5, "Formosa", "Chubut")
val valorLargaDistancia = Empresa valorComunicacion(llamadaLargaDistancia)
val llamadaLargaDistancia2 = new LlamadaLargaDistancia(new Date(2012, 8, 26), 1149143701, 5, "Buenos Aires", "Salta")
val llamadaLargaDistancia3 = new LlamadaLargaDistancia(new Date(2012, 8, 26), 1149143701, 8, "Formosa", "Chubut")
val llamadaLargaDistancia4 = new LlamadaLargaDistancia(new Date(2012, 8, 26), 1149143701, 9, "Buenos Aires", "Ushuaia")
val llamadaLargaDistancia5 = new LlamadaLargaDistancia(new Date(2012, 8, 26), 1149143701, 2, "Buenos Aires", "La Rioja")


val nacho = new Cliente("Nacho")
val jorge = new Cliente("Jorge")
nacho comunicarse(llamadaLocal)
nacho comunicarse(sms)
nacho.comunicarse(llamadaLocal2)
nacho.comunicarse(llamadaLocal3)
nacho.comunicarse(llamadaLocal4)
nacho.comunicarse(llamadaLargaDistancia)
nacho.comunicarse(llamadaLargaDistancia2)
nacho.comunicarse(llamadaLargaDistancia3)
nacho.comunicarse(llamadaLargaDistancia4)
nacho.comunicarse(llamadaLargaDistancia5)

var llamadas = List[Comunicacion]()
llamadas ::= llamadaLocal
llamadas ::= llamadaLargaDistancia2
llamadas ::= sms

//var plancito = new PlanHablateTodo()
//
//print(plancito.esFinDeSemana(new Date(2012, 9, 8)))
//print(plancito.esFinDeSemana(new Date(2012, 9, 9)))



val movistar = Empresa
movistar.agregarCliente(nacho)
movistar.agregarCliente(jorge)

print(Empresa valorComunicacion(llamadaLocal))
print("\n")
print(Empresa valorComunicacion(sms))
print("\n")
//print(Empresa valorComunicacion(llamadaLargaDistancia))
print(Empresa montoAFacturarEnUnMes(8, nacho))
//Empresa agregarPlan(nacho, new PlanPrepagoInternacional)
Empresa agregarPlan(nacho, new PlanPrepagoLocal)
//Empresa agregarPlan(nacho, new PlanNumerosAmigos(List(1149143701)))

print("\n")
print(Empresa montoAFacturarEnUnMes(8, nacho))
print("\n")
print(Empresa descuentoPorPlan(llamadaLocal, nacho, Empresa.valorComunicacion(llamadaLocal)))


//print(nacho.comunicaciones.head.fechaComunicacion().getDate())






}